#include<bits/stdc++.h>
using namespace std;
#define all(x) (x).begin(),(x).end()
#define rall(x) (x).rbegin(),(x).rend()
const int N=2e5+10;
#define INF 0x3f3f3f3f;
typedef long long int ll;
#define close(); std::ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);
//----------------------------------------------------------------------------//

class mycomp2 {
public:
    bool operator() (int i, int j) {
        return (i > j);
    }
};
int main()
{
	// close();
	// // int a=8,b=3;
	// // cout<<(a&b)<<'\n';

	// int a[]={1,2,3,3,3,4,5};
	// if(!is_sorted(a,a+7,mycomp2()))
	// {
	// 	cout<<"yes"<<'\n';
	// }
	int n = 5;
	int a[] = { 5,4,3,2,1 };//这里可以理解成仿函数是greater<int>
	int* pos2 = upper_bound(a, a + n, 3, greater<int>());//降序传greater<int>()可以找到第一个小于3的元素
	int pos3 = pos2 - a;
	cout << "the first lower 3 num is:" << *pos2 << "----" << "it pos is:" << pos3 << '\n';
	return 0;
}